#ifndef MULTIPLICITY_H
#define MULTIPLICITY_H

#include <iostream>
#include <climits>

class NodeElement;
class Sequence;
class Choice;

class Multiplicity {

public:
	static const unsigned int INF = UINT_MAX;
	Multiplicity (unsigned int aMin, unsigned int aMax);
	virtual ~Multiplicity ();
	bool isWithin (unsigned int value);
	
	virtual void print(std::ostream& out);
	
	friend class NodeElement;
	friend class Sequence;
	friend class Choice;
	

protected:
	unsigned int min;
	unsigned int max;

};

#endif // MULTIPLICITY_H
